package beans;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import org.primefaces.event.SelectEvent;

import daos.ProfesorDAO;
import daosimp.ProfesorDAOIMP;
import modelo.Cursoperiodogrupo;
import modelo.Persona;
import modelo.Profesor;

@ManagedBean
@RequestScoped
public class ProfesorBean {

	private Profesor profesor;
	private List<Cursoperiodogrupo> cursospergrupo;
	private Cursoperiodogrupo cpgSelec;
	private ProfesorDAO profesorDAO = new ProfesorDAOIMP();

	public void eventChange(SelectEvent e) {
		try {
			FacesContext.getCurrentInstance().getExternalContext()
					.redirect("profesorCurso.xhtml");
			FacesContext.getCurrentInstance().getExternalContext()
					.getSessionMap().put("cpgSelec", cpgSelec);
		} catch (IOException e1) {
			e1.printStackTrace();
		}
	}

	public Profesor getProfesor() {
		return profesor;
	}

	public void setProfesor(Profesor profesor) {
		this.profesor = profesor;
	}

	public boolean verificarSesion() {
		boolean estado = false;
		Persona per = (Persona) FacesContext.getCurrentInstance()
				.getExternalContext().getSessionMap().get("persona");
		if (per != null) {
			if (per.getRolPersona() == 3) {
				profesor = profesorDAO.obtenerProfesorxPersona(per);
				FacesContext.getCurrentInstance().getExternalContext()
						.getSessionMap().put("profesor", profesor);
				llenarDatos();
				FacesContext.getCurrentInstance().getExternalContext()
				.getSessionMap().remove("cpgSelec");
				estado = true;
			}
		}
		return estado;
	}

	public void llenarDatos() {
		cursospergrupo = new ArrayList<Cursoperiodogrupo>();
		for (Object cpg : profesor.getCursoperiodogrupos()) {
			Cursoperiodogrupo cpgx = (Cursoperiodogrupo) cpg;
			cursospergrupo.add(cpgx);
		}
	}

	public List<Cursoperiodogrupo> getCursospergrupo() {
		return cursospergrupo;
	}

	public void setCursospergrupo(List<Cursoperiodogrupo> cursospergrupo) {
		this.cursospergrupo = cursospergrupo;
	}

	public Cursoperiodogrupo getCpgSelec() {
		return cpgSelec;
	}

	public void setCpgSelec(Cursoperiodogrupo cpgSelec) {
		this.cpgSelec = cpgSelec;
	}
}
